﻿namespace DotNetStar.OpenSDK.WeChat.Pay
{
    /// <summary>
    /// 和微信支付的通信结果
    /// </summary>
    public class WeChatPayResponse
    {
        /// <summary>
        /// 返回状态码
        /// </summary>
        /// <value>
        /// 返回信息
        /// </value>
        public string Return_Code { get; set; }
        /// <summary>
        /// 返回信息
        /// </summary>
        public string Return_Msg { get; set; }



        /// <summary>
        /// 表示当前的请求是否成功。<see cref="Return_Code"/> 是否为 SUCCESS。
        /// </summary>
        public bool IsReturnSuccess() => this.Return_Code == "SUCCESS";
    }

    /// <summary>
    /// 微信支付以后的业务结果。
    /// </summary>
    /// <seealso cref="WeChatPayResponse" />
    public class WeChatPayApiResponse : WeChatPayResponse
    {
        /// <summary>
        /// 业务结果 SUCCESS/FAIL
        /// </summary>
        public string Result_Code { get; set; }

        /// <summary>
        /// 错误代码
        /// </summary>
        public string Err_Code { get; set; }

        /// <summary>
        /// 错误代码描述
        /// </summary>
        public string Err_Code_Des { get; set; }

        /// <summary>
        /// 表示当前的接口业务逻辑是否成功。<see cref="Result_Code"/> 是否为 SUCCESS。
        /// </summary>
        public bool IsResultSuccess() => this.Result_Code == "SUCCESS";

        /// <summary>
        /// 随机字符串。
        /// </summary>
        public string Nonce_Str { get; set; }
        /// <summary>
        /// 签名。
        /// </summary>
        public string Sign { get; set; }
    }
}
